Peripheral component interconnect express (PCI-E) is a standard for incorporating peripheral devices in computing systems and other electronic apparatuses. The standard defines interfaces and protocols for communication with PCI-E compatible devices and is commonly used in consumer and industrial applications as a motherboard level interconnect, a backplane interconnect, and an expansion card interface.
PCI-E has also been adapted for various modular applications, such as external chassis used to connect numerous peripheral devices to a host system. These modular applications have achieved popularity because they provide system integrators with flexibility to connect various peripheral devices according to their specific needs.
In an effort to standardize certain aspects of modular PCI-E applications, committees have developed compact PCI express (cPCI-E), which is a ruggedized version of PCI-E that can be used to incorporate peripherals in an external chassis, and PCI-E eXtensions for instrumentation (PXI-E), which is a version of cPCI-E adapted for test and measurement equipment such as oscilloscopes, logic analyzers, and so on.
A cPCI-E or PXI-E chassis typically comprises a system slot configured to receive a system controller, a plurality of peripheral slots each configured to receive a peripheral module, and a PCI-E switch fabric connected between the system slot and the peripheral slots. The chassis can be implemented in a standalone configuration where the system controller comprises an embedded controller such as a personal computer (PC) chipset, or it can be implemented in a hosted configuration where the system controller is connected to a remote host via a PCI-E cabled interface. A cPCI-E or PXI-E chassis can also be expanded through the use of cabled PCI-E modules, which can be inserted into the slots of the chassis and connected to additional downstream chassis or modules. For example, a cabled PCI-E module can be used to connect a first chassis to a second downstream chassis in a daisy chained configuration.
Cabled PCI-E modules communicate using signaling standards defined by a cabled PCI-E specification. The specification defines signaling for two types of devices, including a cabled host adapter, which can be connected to an upstream entity such as a peripheral slot of an upstream chassis or host PC, and a cabled target adapter, which can be connected to a downstream entity, such as a system slot of a downstream chassis.
Although conventional cPCI-E and PXI-E chassis provide system integrators with flexibility to customize a system, conventional cPCI-E and PXI-E chassis also have various shortcomings that can prevent chassis resources from being used efficiently. For example, in conventional cPCI-E and PXI-E chassis, peripheral modules must be controlled through a single entity such as an embedded controller or remote host. This can create a bandwidth bottleneck for peripheral modules that need to communicate with the controller or host, which can limit their performance. This limitation is a consequence of various factors such as the way the cPCI-E and PXI-E specifications are defined, and the way switch fabrics are conventionally configured in cPCI-E and PXI-E chassis.
In addition, the slots of cPCI-E and PXI-E chassis have fixed lane widths, but the peripheral modules may not require all of the lanes. For example, a PXI-E chassis may have multiple slots with eight lanes, but many peripheral modules only require four lanes. As a result, some of the lanes may remain idle.
Finally, the slots of a conventional cPCI-E and PXI-E chassis are limited to using specific types of cabled PCI-E modules, which can limit their flexibility. For instance, the system slot of a conventional cPCI-E or PXI-E chassis can receive a cabled target adapter, but not a cabled host adapter. Accordingly, the system slot is always treated as a downstream slot when connected to a cabled PCI-E module. Similarly, the peripheral slots of a conventional cPCI-E or PXI-E chassis can receive a cabled host adapter to connect to downstream devices, but not a cabled target adapter. Accordingly, the peripheral slots are always treated as upstream slots when connected to cabled PCI-E modules. Like the above-described bandwidth bottlenecks, this limitation is also a consequence of factors such as the way the cPCI-E and PXI-E specifications are defined, and the way switch fabrics are conventionally configured in cPCI-E and PXI-E chassis.
Due to these and other limitations of existing cPCI-E and PXI-E chassis implementations, there is a need for cPCI-E and PXI-E chassis implementations providing improved flexibility and performance.